package justdoit;

import java.util.Random;

/**
 * @author 刘鹏飞
 * @ClassName Test3
 * @Date 2024/11/30 00:03
 * @Created by 刘鹏飞
 * @Description 使用递归算法完成阶乘：1!+2!+3!+4!+5!
 */
public class Test3 {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();  // 获取当前系统时间，毫秒数
        int factorial = factorial(5);
        long end = System.currentTimeMillis();

        System.out.println(" 5的阶乘是 " + factorial);
        System.out.println("耗费了 "+(end-start)+"毫秒");  // 计算耗时


    }

    // 递归调用
    // 5*4*3*2*1
    public static int factorial(int num){
        if (num==1){  //  递归的出口 ！！
            return 1;
        }
        return num*factorial(num-1);

        /**
         * factorial(5)  5*(4*(3*2))(最终返回值)
         *     --> 5*factorial(4)     5*(4*(3*2))
         *             -> 4*factorial(3)  4*(3*2)
         *                  --> 3*factorial(2)  3*2
         *                           --> 2*factorial(1)  2*1
         *                                --> 1
         */
    }

}
